// store/cart.js
import { defineStore } from 'pinia'

export const useCartStore = defineStore('cart', {
  state: () => ({
    count: 0 // 购物车数量
  }),
  actions: {
    // 更新购物车数量并持久化
    updateCartCount(count) {
      this.count = count
      uni.setStorageSync('cartCount', count)
    },
    // 初始化购物车数量（关键修复：主动请求接口获取最新数据）
    async initCartCount() {
      try {
        // 从本地存储获取缓存的数量（临时显示）
        const localCount = uni.getStorageSync('cartCount') || 0
        this.count = localCount
        
        // 关键：主动请求接口获取最新数量（覆盖本地缓存）
        // const { queryCartList } = await import('@/api/cart.js')
        // const res = await queryCartList({ pageNum: 1, pageSize: 1 })
        // if (res.code === 200) {
          // this.updateCartCount(res.rows.length) // 使用接口返回的实际数量
        // }
      } catch (error) {
        console.error('初始化购物车数量失败:', error)
        // 失败时仍使用本地缓存
        this.count = uni.getStorageSync('cartCount') || 0
      }
    },
    increment() {
      this.count++
      uni.setStorageSync('cartCount', this.count)
    },
    decrement() {
      this.count = Math.max(0, this.count - 1)
      uni.setStorageSync('cartCount', this.count)
    }
  },
  getters: {
    cartCount: (state) => state.count
  }
})